package com.itheima.d1_exception;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

/**
 * 目标：掌握异常的捕获处理try-catch
 */
public class ExceptionTest3 {
    public static void main(String[] args) {
        // 需求：调用一个方法，让用户输入一个合适的日期时间返回为止。

        Scanner sc = new Scanner(System.in);
        while (true) {

            System.out.println("请输入一个日期时间信息：");
            String dateStr = sc.nextLine();//获取包含空格在内的字符串

            try {
                Date date = parseDate(dateStr);
                System.out.println("解析正常");
                System.out.println("date = " + date);
                break;//结束循环
            } catch (ParseException e) {
                //捕获异常，意味着也会拦截异常的甩锅。
                //e.printStackTrace();//打印异常栈信息
                System.out.println("报错啦！！！");
            }

            System.out.println("程序正常运行！！");

        }


    }


    public static Date parseDate(String dateStr) throws ParseException {
        //日期格式化一次
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = sdf.parse(dateStr);//这里有可能会产生异常。编译报错的意义在于提醒程序员要强制的进行处理。
        //ALt+回车快速处理

        return date;

    }

}
